Distributed or grid computing provides the ability to share and allocate processing requests and resources among various nodes, computers or server farm(s) within a grid. A server farm is generally a group of networked servers or, alternatively, a networked multi-processor computing environment, in which work is distributed between multiple processors. Workload is distributed between individual components or processors of servers.
A resource is generally something that is consumed during execution of a workflow or job, such as a machine on the grid. Resources that are distributed throughout the grid include various objects. An object is a self-contained module of data and associated processing that resides in a process space. There can be one or multiple object per process. These objects can be distributed through various portions of the grid, e.g., in various geographic locations.
Objects can reside on various servers or server farms. A server farm environment can include different classes of resources, machine types and architectures, operating systems, storage and hardware. Server farms are typically coupled with a layer of load-balancing or distributed resource management (DRM) software to perform numerous tasks, such as managing and tracking processing demand, selecting machines on which to run a given task or process, and scheduling tasks for execution.
An important aspect of managing a computing system, particularly a distributed or grid-based computing system, is the task of managing resources in the system. In order to most effectively manage the resources, system managers need information about the resources, such as their usage patterns, so that managers can adjust how the resources are used by, for example, adding or removing resources from the grid.
One known and simplistic approach for collecting resource information is gathering raw data about a resource and dumping that data into a very large datastore. The datastore is filled with data over time, and when too much data has been collected, the system runs out of storage space. Consequently, data is removed from the datastore.
One shortcoming with known “fill and dump” approaches is that they requires a large storage system in order to accommodate the large amount of resource information that is being collected. An organization may run out of space to store this information depending upon how much of this information is needed for historical purposes. The storage problem is amplified when larger numbers of resources are to be monitored. One solution to this problem is using larger datastores. However, this solution is not desirable since the same storage limitations still exist.
Further, masses of data collected in this manner are not organized and are not in a form that can be easily understood. Thus, although a system manager may have very large quantities of raw resource data, the information contained within that data is not readily ascertained.
Another problem with known approaches is that a user may be unable to perform analysis of resource data over certain periods of time since the data that is required for the analysis has been removed from the datastore. In other words, conventional systems remove the “old” data and replace it with “new” data. However, the “old” data often has valuable information regarding trends of resources, particularly longer term trends. Thus, users are limited to resource data applicable to the short term, but not the long term and, therefore, are not able to accurately assess resource trends.
Accordingly, there exists a need for methods and systems for gathering data and modeling or representing resource data in such a way that the relevant or important information from the gathered data is retained and available to a user, without having to store large quantities of raw resource data. There also exists a need for systems and methods for ensuring that resource models and updates thereto are propagated to different groups of resources so that other resources and resource groups that may include or utilize a particular resource include updated information concerning that resource. Moreover, there exists a need for systems and methods for presenting modeled resource data to users over different periods of time so that resource trends can be readily ascertained. Embodiments fulfill these needs.